# ДЗ 
Требуется реализовать методы в `HashMapsAreFast.cs`

### 1. Телефонная база 
★★★☆☆

Используйте все полученные знания, примеря кода и результаты из предыдущих ДЗ чтобы решить задачу нахождения уникальных номеров телефонов из переданного списка.

```C#
public long[] GetUniqueNumbers(long[] inputArray) {...}
```

### 2. Сумма чисел.  
★★★☆☆

Вам передан массив целых чисел `int[]`.
Попытайтесь найти в этом массиве два числа, которые в сумме дают число X. 
Верните true если такие два числа в массиве есть 

```C#
public boolean IsThereTwoNumbers(int[] numbers, int X) {...}
``` 
	
Самым простейшим решением этой задачи — является вложенный цикл. 
Для каждого числа в массиве — вы можете запустить вложенный цикл, 
который попытается найти пару к этому числу, так что в сумме они дадут Х. 

Однако время работы такого решения будет зависеть от квадрата размера массива, 
ведь для каждого элемента из массива размера N нам нужно будет сделать 
еще N операций, и в итоге получится N*N операций, т.е.  N<sup>2</sup>

Однако в решении этой задачи вам весьма пригодятся ХэшМэпы, которые позволят решить эту задачу без вложенных циклов, соответственно время работы такого алгоритма будет зависеть не от N<sup>2</sup> а от N.


###[ВАЖНО]
**Попробуйте подумать что мы можем сохранить в ХэшМэп чтобы упростить нашу задачу?**


*Как найти пару к числу, так что в сумме они дадут Х, не проходя по всему массиву?* 

X = A + B

A = X - B
B = X - A

значит ключем в хэшмэпе должен быть X - текуший_элемент_массива
т.к. это и будет второй недостающий элемент выражения A + B
и мы если мы, взяв следующий элемент, увидим, что у нас уже есть такой ключ
значит это искомая пара